package io.adrainty.bolee.trade.models.ali;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;

/**
 * <p>AliPeriodicDTO</p>
 *
 * @author AdRainty
 * @version V1.0.0
 * @description 阿里APP周期扣款参数对象
 * @since 2025/8/28 13:45:27
 */

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "阿里APP周期扣款参数对象")
public class AliPeriodicDTO implements Serializable {
    
    @Serial
    private static final long serialVersionUID = -5294552126807401984L;

    @Schema(description = "签约扣款：合同号")
    private String contractNo;

    @Schema(description = "签约扣款：商户签约号")
    private String externalAgreementNo;

    @Schema(description = "支付宝签约号:关联支付")
    private String agreementNo;

    @Schema(description = "签约扣款：扣款场景")
    private String signScene;

    @Schema(description = "签约扣款：签约成功异步通知地址")
    private String signNotifyUrl;

    @Schema(description = "签约扣款：周期类型")
    private String rulePeriodType;

    @Schema(description = "签约扣款：周期数")
    private String rulePeriod;

    @Schema(description = "签约扣款：下次扣款的时间")
    private String ruleExecuteTime;

    @Schema(description = "签约扣款：扣款总金额")
    private String ruleTotalAmount;

    @Schema(description = "签约扣款：单次扣款最大金额")
    private String ruleSingleAmount;

    @Schema(description = "签约扣款：总扣款次数")
    private String ruleTotalPayments;

    @Schema(description = "签约扣款：通道")
    private String accessChannel;
    
}
